package br.fatecsp.ihc.pedidos.model;

import java.io.Serializable;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "enderecos")
@NamedQueries( { @NamedQuery(name = "Endereco.findAll", query = "SELECT e FROM Endereco e") })
public class Endereco implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "id_endereco")
    private Long id;

    @Column(name = "nome_logradouro")
    private String logradouro;

    @Column(name = "numero_endereco")
    private int numero;

    @Column(name = "compl_endereco")
    private String complemento;

    @Column(name = "nome_localidade")
    private String localidade;

    private String uf;

    @OneToMany(mappedBy = "endereco")
    private Set<ClienteEndereco> clientesEnderecos;

    @ManyToMany(mappedBy = "enderecos")
    private Set<Cliente> clientes;

    public Endereco() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public String getComplemento() {
        return complemento;
    }

    public void setComplemento(String complemento) {
        this.complemento = complemento;
    }

    public String getLocalidade() {
        return localidade;
    }

    public void setLocalidade(String localidade) {
        this.localidade = localidade;
    }

    public String getUf() {
        return uf;
    }

    public void setUf(String uf) {
        this.uf = uf;
    }

    public Set<ClienteEndereco> getClientesEnderecos() {
        return clientesEnderecos;
    }

    public void setClientesEnderecos(Set<ClienteEndereco> clientesEnderecos) {
        this.clientesEnderecos = clientesEnderecos;
    }

    public Set<Cliente> getClientes() {
        return clientes;
    }

    public void setClientes(Set<Cliente> clientes) {
        this.clientes = clientes;
    }

}